package com.cgnpc.scp.sri.capacitybuilding.service;

import cn.com.cgnpc.aep.bizcenter.appcenter.sdk.result.ApiResult;
import com.cgnpc.cud.core.domain.AjaxResult;
import com.cgnpc.scp.common.bean.CreateFileInfo;
import com.cgnpc.scp.sri.capacitybuilding.mybatis.entity.CapacityBuildingInfo;
import com.cgnpc.scp.sri.capacitybuilding.mybatis.entity.CapacityPlanPhase;
import com.cgnpc.scp.sri.capacitybuilding.pojo.CapacityBuildingInfoVo;
import com.cgnpc.scp.common.bean.MyPageResult;
import com.cgnpc.scp.sri.capacitybuilding.pojo.CapacityBuildingPhaseVo;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;
import java.util.Map;

public interface CapacityBuildingService {

    MyPageResult<CapacityBuildingInfo> queryListPage(Map<String, Object> params);

    CapacityBuildingInfoVo planInfo(String id);

    AjaxResult planSave(Map<String, Object> params) throws Exception;

    ApiResult submitProcess(Map<String, Object> params) throws Exception;

    List<String> getAllYear();

    CapacityBuildingInfoVo planUpdate(CapacityBuildingInfoVo vo);

    CreateFileInfo exportExcel(Map<String, Object> params) throws Exception;

    List<CapacityBuildingInfo> getAllPlanInfo();

    List<CapacityPlanPhase> getPhaseByPlanId(String planId);

    AjaxResult planStageSave(Map<String, Object> params) throws Exception ;

    @Transactional
    ApiResult stageSubmitProcess(Map<String, Object> params) throws Exception;

    CapacityBuildingPhaseVo stageInfo(String id);

    CapacityBuildingPhaseVo progressInfo(String id);

    ApiResult deleteDraft(Map<String, Object> params) throws Exception;

    ApiResult deleteProcessDraft(Map<String, Object> params) throws Exception;
}
